import { Connector } from "cax-connector";
import { devtool } from "cax-base";
import { API_EVENT, IReq, IRes } from "../interface";
import { v4 as uuidv4 } from "uuid";

/**
 *
 * @param path {string} - 工程ID
 * @returns
 */
export function project_save(
  this: Connector,
  path: string,
  version: string
): Promise<any> {
  if (this.client == null) return Promise.reject("socket未初始化");
  const req: IReq = {
    Topic: "api",
    Type: API_EVENT.PROJECT_SAVE,
    Params: {
      path,
      version,
    },
    Req: 1,
    Res: 0,
    Tag: uuidv4(),
  };
  this.client.emit("api", req);
  return new Promise((resolve, reject) => {
    this.client?.once(req.Tag, (ev: IRes) => {
      devtool.success(API_EVENT.PROJECT_SAVE, ev);
      if (ev.Status === 0) {
        resolve(ev.Result.Path);
      } else {
        reject(ev.Errmsg);
      }
    });
  });
}
